package com.jiaanpei.frameproject.manage;

import android.animation.ObjectAnimator;
import android.content.Context;
import android.view.View;

import com.bumptech.glide.request.animation.ViewPropertyAnimation;
import com.jiaanpei.frameproject.R;

import imageloader.libin.com.images.config.ScaleMode;
import imageloader.libin.com.images.loader.ImageLoader;

public class ImageLoaderManager {
//    .scale(ScaleMode.CENTER_CROP) // CENTER_CROP等比例缩放图片，直到图片的狂高都大于等于ImageView的宽度，然后截取中间的显示 ;
//    .scale(ScaleMode.FIT_CENTER) // FIT_CENTER 等比例缩放图片，宽或者是高等于ImageView的宽或者是高 默认：FIT_CENTER
//    ImageLoader.with(this).priority(int priority).into(View)
//        .priority(PriorityMode.PRIORITY_LOW) //低
//.priority(PriorityMode.PRIORITY_NORMAL) //正常
//.priority(PriorityMode.PRIORITY_HIGH) // 高
//.priority(PriorityMode.PRIORITY__IMMEDIATE ) // 立即
//    ImageLoader.with(this).error(R.mipmap.ic_launcher).into(View)//错误

//    ImageLoader.with(this).diskCacheStrategy(DiskCacheStrategy.RESULT).into(View)
//    DiskCacheStrategy.RESULT // 缓存transformate后的数据
//    DiskCacheStrategy.SOURCE // 缓存原始数据
//    DiskCacheStrategy.ALL // 缓存以上两种
//    DiskCacheStrategy.NONE // 不缓存

//        .asSquare() 正方形
//        .rectRoundCorner(int rectRoundRadius) 圆角
//        .asCircle() 圆形
//blur(int blurRadius)滤镜效果

    public static void loadNetImage(Context ctx, String url, View view){
        ImageLoader.with(ctx)
                .url(url)
                .placeHolder(R.mipmap.ic_launcher)
                .scale(ScaleMode.FIT_CENTER)
                .into(view);
    }

    public static void loadCircleImage(Context ctx, String url, View view){
        ImageLoader.with(ctx)
                .url(url)
                .placeHolder(R.mipmap.ic_launcher)
                .scale(ScaleMode.FIT_CENTER)
                .asCircle()
                .into(view);
    }

    public static void loadResImage(Context ctx, int res, View view){
        ImageLoader.with(ctx)
                .res(res)
                .placeHolder(R.mipmap.ic_launcher)
                .scale(ScaleMode.FIT_CENTER)
                .into(view);
    }
    public static void loadSDCardImage(Context ctx, String path, View view){
        ImageLoader.with(ctx)
                .file("file://"+ path)
                .placeHolder(R.mipmap.ic_launcher)
                .scale(ScaleMode.FIT_CENTER)
                .into(view);
    }

    public static void loadRawImage(Context ctx, String packageName,int raw, View view){
        ImageLoader.with(ctx)
                .raw("android.resource://"+packageName+"/raw/"+raw)
                .placeHolder(R.mipmap.ic_launcher)
                .scale(ScaleMode.FIT_CENTER)
                .into(view);
    }

    public static void loadAssertsImage(Context ctx, String fileName, View view){// file:///android_asset/图片名称.图片格式”
        ImageLoader.with(ctx)
                .asserts("file:///android_asset/"+fileName)
                .placeHolder(R.mipmap.ic_launcher)
                .scale(ScaleMode.FIT_CENTER)
                .into(view);
    }

    public static void loadAnimateImage(Context ctx, String url, View view){
        ViewPropertyAnimation.Animator animationObject = new ViewPropertyAnimation.Animator() {
            @Override
            public void animate(View view) {
                view.setAlpha( 0f );

                ObjectAnimator fadeAnim = ObjectAnimator.ofFloat( view, "alpha", 0f, 1f );
                fadeAnim.setDuration( 2500 );
                fadeAnim.start();
            }
        };


        ImageLoader.with(ctx).url(url).animate(animationObject).into(view);
    }
}
